package com.shijie.sjoj.model.api.record;

import com.shijie.sjoj.model.pojo.base.Status;
import com.shijie.sjoj.model.pojo.entity.Record;

import java.util.List;

/**
 * 解题记录服务接口
 *
 * @author ZSJ
 */
public interface RecordService {

    /**
     * 记录搜索
     *
     * @param userId 用户id
     * @return List
     */
    List<Record> list(Long userId);

    /**
     * 根据记录id搜索记录
     *
     * @param recordId 记录id
     * @return Record
     */
    Record getByRecordId(Long recordId);

    /**
     * 保存记录
     *
     * @param record 记录
     * @return boolean
     */
    boolean save(Record record);

    /**
     * 解题状态变更
     *
     * @param recordId 记录id
     * @param status   状态
     * @return boolean
     */
    boolean changeStatus(Long recordId, Status status);

    /**
     * 解题错误信息
     *
     * @param recordId 记录id
     * @param errorTip 错误信息
     * @return boolean
     */
    boolean errorInfo(Long recordId, String errorTip);

    /**
     * 解题成功信息
     *
     * @param recordId    记录id
     * @param userTimeMil 使用的时间
     * @param useMemoryKb 使用的内存
     * @return boolean
     */
    boolean successInfo(Long recordId, Integer userTimeMil, Integer useMemoryKb);


}
